package com.igeekhome.service;

import com.igeekhome.pojo.DDeliveryToDestinationAreaQuotation;
import com.igeekhome.pojo.DSendingMaintenanceList;
import com.igeekhome.pojo.DSpecificQuotationSheet;
import com.igeekhome.util.ResultBean;
import com.igeekhome.util.TableResultBean;

import java.util.List;

/**
 * @author Romeo
 */
public interface IQuoteDtoService {
    /**
     * 报价维护页面table显示支持模糊查询
     * @param dDeliveryToDestinationAreaQuotation 模糊查询参数（前台传递参数以及status值为1）
     * @param page 分页
     * @param limit 分页
     * @return 返回结果集
     */
    TableResultBean selectList(DDeliveryToDestinationAreaQuotation dDeliveryToDestinationAreaQuotation, Integer page, Integer limit);

    ResultBean add(DDeliveryToDestinationAreaQuotation dDeliveryToDestinationAreaQuotation);
    ResultBean edit(DDeliveryToDestinationAreaQuotation dDeliveryToDestinationAreaQuotation);
    ResultBean delete(String idsStr);

    /**
     * 报价信息的维护
     * @param page 分页
     * @param limit 分页
     * @param itemId 物品类型id
     * @param shiftId 快件类型id
     * @param offerId 报价id
     * @return 结果集
     */

    TableResultBean ruleList(Integer page,Integer limit,String itemId,String shiftId,String offerId);
    ResultBean ruleAdd(DSpecificQuotationSheet dSpecificQuotationSheet);
    ResultBean ruleEdit(DSpecificQuotationSheet dSpecificQuotationSheet);

    /**
     * 查询计算公式以及限制条件
     * @param serialId 报价信息的id
     * @return 信息表
     */
    List<String[]> selectFormula(Integer serialId);

    ResultBean ruleDelete(Integer serialId);

    /**
     * 根据传递的参数查询报价表的主键
     * @param destination 目的区间
     * @param sending 寄件区间
     * @param shift 快件类型
     * @param itemType 物品类型
     * @param vip 客户
     * @return （期待一个,如果有多个的化默认取第一个,返回list）
     */
    List<String[]>  selectFormula(Integer sending,Integer destination ,Integer shift ,Integer itemType ,Integer vip);

    /**
     *  通过网点信息查询所对应的寄件区间
     * @param nid 网点编号
     * @return 寄件区间集合
     */
    List<DSendingMaintenanceList> selectByNid(Integer nid);

    /**
     * 查询目的区间
     * @return
     */
    List<DSendingMaintenanceList> selectToSpots();
}
